package com.ds.admin.console.param;

import com.ds.admin.console.entity.TFile;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.Getter;
import lombok.Setter;

/**
 * 文件上传记录对象
 *
 * @author fusheng
 * @since 2024-09-10
 */
@Getter
@Setter
@AutoMapper(target = TFile.class)
public class TFileParam {

	/**
	 * 主键ID
	 */
	@NotNull(message = "主键ID不能为空")
	private Long id;

	/**
	 * 分片上传的uploadId
	 */
	@NotBlank(message = "分片上传的uploadId不能为空")
	@Size(max = 255)
	private String uploadId;

	/**
	 * 文件唯一标识（md5）
	 */
	@NotBlank(message = "文件唯一标识（md5）不能为空")
	@Size(max = 32)
	private String fileMd5;

	/**
	 * 文件名
	 */
	@NotBlank(message = "文件名不能为空")
	@Size(max = 255)
	private String fileName;

	/**
	 * 桶名
	 */
	@NotBlank(message = "桶名不能为空")
	@Size(max = 255)
	private String bucketName;

	/**
	 * 文件存储路径
	 */
	@NotBlank(message = "文件存储路径不能为空")
	@Size(max = 1024)
	private String objectName;

	/**
	 * 文件大小（byte）
	 */
	@NotNull(message = "文件大小（byte）不能为空")
	private Long fileSize;

	/**
	 * 每个分片大小（byte）
	 */
	@NotNull(message = "每个分片大小（byte）不能为空")
	private Long chunkSize;

	/**
	 * 分片数量
	 */
	@NotNull(message = "分片数量不能为空")
	private Integer chunkNum;

	/**
	 * 是否上传完成(1：是 0：否)
	 */
	@NotNull(message = "是否上传完成(1：是  0：否)不能为空")
	private Integer isFinish;

	/**
	 * 创建者
	 */
	@NotNull(message = "创建者不能为空")
	private Long createUser;

	/**
	 * 更新者
	 */
	@NotNull(message = "更新者不能为空")
	private Long updateUser;

}
